FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/node:18-bullseye-slim

# 设置非交互模式
ENV DEBIAN_FRONTEND=noninteractive
# 设置时区
ENV TZ=Asia/Shanghai

# 工作目录
WORKDIR /app

# ✅ 创建模板目录
RUN mkdir -p /app/templates

# ✅ 强制使用阿里云 APT 源
RUN sed -i 's|http://deb.debian.org/debian|http://mirrors.aliyun.com/debian|g' /etc/apt/sources.list && \
    sed -i 's|http://security.debian.org/debian-security|http://mirrors.aliyuncs.com/debian-security|g' /etc/apt/sources.list && \
    sed -i 's|http://deb.debian.org/debian-security|http://mirrors.aliyuncs.com/debian-security|g' /etc/apt/sources.list && \
    echo "✅ 已切换为阿里云 APT 源"

# ✅ 安装 Chromium、中文字体、打印依赖
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        chromium \
        fonts-wqy-zenhei \
        fonts-wqy-microhei \
        fonts-noto-cjk \
        ttf-wqy-zenhei \
        curl \
        wget \
        # 👇 新增：打印和字体渲染关键依赖
        fontconfig \
        xz-utils \
        libx11-6 \
        libxcomposite1 \
        libxcursor1 \
        libxdamage1 \
        libxext6 \
        libxi6 \
        libxrandr2 \
        libxrender1 \
        libxss1 \
        libxtst6 \
        libasound2 \
        libpangocairo-1.0-0 \
        libatk1.0-0 \
        libatk-bridge2.0-0 \
        libgtk-3-0 \
        libgdk-pixbuf2.0-0 && \
    rm -rf /var/lib/apt/lists/* && \
    fc-cache -fv && \
    echo "✅ Chromium、中文字体及图形依赖安装完成"

# ✅ 设置 Puppeteer 使用系统 Chromium
ENV PUPPETEER_SKIP_DOWNLOAD=true \
    PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium \
    # 👇 新增：运行 Chromium 所需环境变量
    CHROME_PATH=/usr/bin/chromium \
    CHROME_DEVEL_SANDBOX=/usr/local/sbin/chrome-devel-sandbox

# ✅ 使用淘宝 NPM 镜像（阿里旗下）
ENV NPM_CONFIG_REGISTRY=https://registry.npmmirror.com

# 拷贝 package.json 并安装生产依赖
COPY package*.json ./
RUN npm install --production && npm cache clean --force

# 拷贝服务代码
COPY server.js ./
# 👇 新增：拷贝默认模板（可选，用于初始化）
COPY templates/ templates/

# 暴露端口
EXPOSE 3000

# ✅ 启动命令：启用无沙盒模式（Docker 中安全）
CMD ["node", "server.js"]